package com.eudon.design_pattern.behavioral.interpreter;

import java.util.HashMap;
import java.util.Map;

/**
 * @author eudon
 * @description 上下文类，存储接口调用数据
 * @date 2025/9/3
 * @email syd19970616@gmail.com
 * @address <a href="https://gitee.com/eudon">Gitee</a>
 */
public class Context {
    // 存储接口调用次数
    private Map<String, Integer> callCounts = new HashMap<>();
    // 存储接口失败次数
    private Map<String, Integer> failCounts = new HashMap<>();
    // 存储接口失败率
    private Map<String, Double> failRates = new HashMap<>();

    /**
     * 设置接口调用次数
     */
    public void setCallCount(String apiName, int count) {
        callCounts.put(apiName, count);
    }

    /**
     * 获取接口调用次数
     */
    public int getCallCount(String apiName) {
        return callCounts.getOrDefault(apiName, 0);
    }

    /**
     * 设置接口失败次数
     */
    public void setFailCount(String apiName, int count) {
        failCounts.put(apiName, count);
    }

    /**
     * 获取接口失败次数
     */
    public int getFailCount(String apiName) {
        return failCounts.getOrDefault(apiName, 0);
    }

    /**
     * 设置接口失败率
     */
    public void setFailRate(String apiName, double rate) {
        failRates.put(apiName, rate);
    }

    /**
     * 获取接口失败率
     */
    public double getFailRate(String apiName) {
        return failRates.getOrDefault(apiName, 0.0);
    }
}